package cn.kgm.user.server.struct;

import cn.kgm.user.dto.dto.UserAccountSaveDTO;
import cn.kgm.user.dto.dto.UserAccountUpdateDTO;
import cn.kgm.user.dto.entity.UserAccount;
import cn.kgm.user.dto.query.UserAccountPageQuery;
import cn.kgm.user.dto.vo.UserAccountVO;
import org.mapstruct.Builder;
import org.mapstruct.Mapper;
import org.mapstruct.factory.Mappers;

/**
 * # 技术改变自己 #
 * 用户账户表
 * @author kappi
 * @date   2024-04-08 13:28:48
 */
@Mapper(builder = @Builder(disableBuilder = true))
public interface UserAccountMappers {
    UserAccountMappers INSTANCE = Mappers.getMapper(UserAccountMappers.class);

    /**
     * 将 UserAccountSaveDTO 映射成 UserAccount 对象
     *
     * @param source 源对象
     * @return UserAccount
     */
    UserAccount mapToEntity(UserAccountSaveDTO source);

    /**
     * 将 UserAccountUpdateDTO 映射成 UserAccount 对象
     *
     * @param source 源对象
     * @return UserAccount
     */
    UserAccount mapToEntity(UserAccountUpdateDTO source);

    /**
     * UserAccountPageQuery 映射成 UserAccount 对象
     *
     * @param source 源对象
     * @return UserAccount
     */
    UserAccount mapToEntity(UserAccountPageQuery source);

    /**
     * UserAccountPageQuery 映射成 UserAccount 对象
     *
     * @param source 源对象
     * @return UserAccountVO
     */
    UserAccountVO mapToEntity(UserAccount source);

}
